﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using log4net;

namespace demo.Common
{
    public class LogHelper
    {
        /// <summary>
        /// Logger 实例
        /// </summary>
        private static readonly ILog Logger = LogManager.GetLogger(typeof(LogHelper));

        /// <summary>
        /// 写入调试信息
        /// </summary>
        /// <param name="message">消息</param>
        public static void Debug(string message)
        {
            Logger.Debug(message);
        }

        /// <summary>
        /// 写入调试信息
        /// </summary>
        /// <param name="format">消息格式字符串</param>
        /// <param name="args">一个对象数组，其中包含零个或多个要设置格式的对象</param>
        public static void Debug(string format, params object[] args)
        {
            Logger.DebugFormat(format, args);
        }

        /// <summary>
        /// 写入普通日志信息
        /// </summary>
        /// <param name="message">消息</param>
        public static void Info(string message)
        {
            Logger.Info(message);
        }

        /// <summary>
        /// 写入普通日志信息
        /// </summary>
        /// <param name="format">消息格式字符串</param>
        /// <param name="args">一个对象数组，其中包含零个或多个要设置格式的对象</param>
        void Info(string format, params object[] args)
        {
            Logger.InfoFormat(format, args);
        }

        /// <summary>
        /// 写入警告信息
        /// </summary>
        /// <param name="message">消息</param>
        /// <param name="ex">异常</param>
        public static void Warn(string message, Exception ex)
        {
            Logger.Warn(message, ex);
        }

        /// <summary>
        /// 写入警告信息
        /// </summary>
        /// <param name="format">消息格式字符串</param>
        /// <param name="args">一个对象数组，其中包含零个或多个要设置格式的对象</param>
        public static void Warn(string format, params object[] args)
        {
            Logger.WarnFormat(format, args);
        }

        /// <summary>
        /// 写入错误信息
        /// </summary>
        /// <param name="format">消息格式字符串</param>
        /// <param name="args">一个对象数组，其中包含零个或多个要设置格式的对象</param>
        public static void Error(string message, Exception ex)
        {
            Logger.Error(message, ex);
        }

        /// <summary>
        /// 写入错误信息
        /// </summary>
        /// <param name="format">消息格式字符串</param>
        /// <param name="args">一个对象数组，其中包含零个或多个要设置格式的对象</param>
        public static void Error(string format, params object[] args)
        {
            Logger.ErrorFormat(format, args);
        }

        /// <summary>
        /// 写入严重错误信息
        /// </summary>
        /// <param name="message">消息</param>
        /// <param name="ex">异常</param>
        public static void Fatal(string message, Exception ex)
        {
            Logger.Fatal(message, ex);
        }

        /// <summary>
        /// 写入严重错误信息
        /// </summary>
        /// <param name="format">消息格式字符串</param>
        /// <param name="args">一个对象数组，其中包含零个或多个要设置格式的对象</param>
        public static void Fatal(string format, params object[] args)
        {
            Logger.FatalFormat(format, args);
        }



    }

}
